package org.dbstar.scheduler.identifier;

import java.io.Serializable;

/**
 * 标识
 * 
 * @author 代波
 * @since 1.0.0
 * @version 1.0.0
 * @date 2012-3-29
 */
public interface Identifier extends Serializable, Comparable<Identifier> {
	/**
	 * 获得该标识的类型
	 * 
	 * @return 标识的类型
	 */
	public abstract IdentifierType getIdentifierType();

	/**
	 * 获得系统标识，每次系统启动后会生成一个唯一的系统标识，并且在系统关闭前保持不变。
	 * 
	 * @return 系统标识
	 */
	public abstract String getSystemIdentifier();

	/**
	 * 获得标识的序列数值。在系统启动后，序列从1开始顺序分配。
	 * 
	 * @return 标识的序列数值
	 */
	public abstract int getSequence();

	/**
	 * 获得标识的字符串形式。
	 * 
	 * @return 标识字符串
	 */
	public abstract String getStringIdentifier();
}
